<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app"></div>
</body>
<script>
    let data = {
        msg: 'hello',
        count: 0,
    }

    let vm = new Proxy(data, {
        get (target, key) {
            console.log('get, key: ', key, target[key]);
            return target[key];
        },
        set(target, key, newValue) {
            console.log('set, key:', key, newValue);
            if (target[key] === newValue) {
                return;
            }
            target[key] = newValue;
            document.querySelector('#app').textContent = target[key];
        }
    })

    // test
    vm.msg = 'along';

    vm.count = 20;
</script>
</html>